package com.lihaogn.sell.service;

import com.lihaogn.sell.entity.Food;
import com.lihaogn.sell.vo.FoodVo;
import com.lihaogn.sell.vo.ListVo;
import com.lihaogn.sell.vo.SearchPageVo;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * @FileName: ProductService
 * @Description: TODO
 * @Author: lihao
 * @Date: 2019-05-25 09:11
 * @Version: 1.0
 */
public interface ProductService {

    // ====== 查询 ======

    /**
     * 根据用户id和用餐人数生成推荐菜品
     *
     * @param userId 用户id
     * @return 菜品列表
     */
//    List<Food> queryRecom(String userId);
    List<String> queryRecom(String userId, Integer peoples);

    /**
     * 查询所有的food信息
     *
     * @return
     */
    List<Food> getAllFood();

    /**
     * 根据条件搜索food
     *
     * @param searchPageVo
     * @return
     */
    ListVo searchFood(SearchPageVo searchPageVo);

    /**
     * 根据id查询food
     *
     * @param foodId
     * @return
     */
    Food getOneFoodById(String foodId);

    /**
     * 分页查询food
     *
     * @param page
     * @param size
     * @return
     */
    List<FoodVo> getAllFoodForPage(String page, String size);

    /**
     * 查询food所有记录条数
     *
     * @return
     */
    int getFoodRowsCount();

    /**
     * 查询foodName是否已经存在
     *
     * @param name
     * @return
     */
    int queryExistFoodName(String name);

    // ====== 添加 ======

    /**
     * 添加一个food
     *
     * @param food
     * @return
     */
    int addOneFood(Food food);


    // ====== 更新 ======

    /**
     * 更新一个food
     *
     * @param food
     * @return
     */
    int updateOneFood(Food food);


    // ====== 删除 ======

    /**
     * 根据id删除一个food
     *
     * @param foodId
     * @return
     */
    int deleteOneFood(String foodId);

    /**
     * 删除多个food
     *
     * @param request
     * @return
     */
    int deleteMultiFood(HttpServletRequest request);
}
